The present application relates to software and more specifically to software mechanisms, such as computer code and accompanying software components and architectures for facilitating designing and developing software user interfaces and accompanying data models.
Software for facilitating developing user interfaces is employed in various demanding applications, including code generators for developing client-side software programs, webpage authoring tools, and software tools for developing Service Oriented Architectures and accompanying network-distributed software applications. Such applications often demand versatile and efficient programming language constructs and accompanying authoring tools that facilitate propagating changes to software with minimal disruption to software end users.
Such versatile software mechanisms and accompanying authoring tools can be particularly important for developing, modifying, and maintaining networked applications, e.g., in enterprise computing environments, where large, complex, and changing data sets and accompanying data models are common. In particular, long-running web applications commonly used in enterprise computing environments may be tasked with presenting data (e.g., via tables, forms, etc.), where ultimate characteristics (e.g., shape) of the associated data model (e.g., numbers of tables and rows, row widths, column heights, etc.) are unpredictable at design time.
However, conventionally, once a software application is developed and deployed, changes to underlying data models may necessitate reconfiguring and redeploying the software application to support the new data models. Reconfiguring and redeploying software applications can be time consuming and costly, especially in large enterprise environments.
Furthermore, developers of networked applications and accompanying webpages may not know which components will be needed at runtime. For example, certain computing objects used by web-based software may contain data (e.g., attributes) that is inapplicable or invalid for certain webpage instances, and the data should only be displayed when necessary. This can be particularly problematic when multiple webpages use software applications (e.g., web services) that share the same data source; where any changes to attributes of a computing object accessed by the software applications may require changes to the webpage code for all web pages accessing the computing objects.